// import com.alibaba.druid.sql.ast.SQLExpr_ptr;
// import com.alibaba.druid.sql.ast.SQLName_ptr;
// import com.alibaba.druid.sql.ast.SQLStatementImpl;
// import com.alibaba.druid.sql.visitor.SQLASTVisitor;
#pragma once
#include "../SQLStatementImpl.h"
#include "SQLAlterStatement.h"

class SQLAlterFunctionStatement :virtual public SQLStatementImpl ,virtual public SQLAlterStatement {
  public:
    SQLName_ptr name;

    BOOL_ptr debug;
    BOOL_ptr reuseSettings;

    SQLExpr_ptr comment;
    BOOL_ptr languageSql;
    BOOL_ptr containsSql;
    SQLExpr_ptr sqlSecurity;

  SHAREDOBJECT(SQLAlterFunctionStatement);
    BOOL_ptr isDebug();

    void setDebug(BOOL_ptr debug) ;

    SQLName_ptr getName() ;

    void setName(SQLName_ptr name) ;

    SQLExpr_ptr getComment() ;

    void setComment(SQLExpr_ptr comment) ;

    BOOL_ptr isReuseSettings() ;

    void setReuseSettings(BOOL_ptr x) ;

    BOOL_ptr isLanguageSql() ;

    void setLanguageSql(BOOL_ptr languageSql) ;

    BOOL_ptr isContainsSql() ;

    void setContainsSql(BOOL_ptr containsSql) ;

    SQLExpr_ptr getSqlSecurity();

    void setSqlSecurity(SQLExpr_ptr sqlSecurity);

    // @Override
    void accept0(SQLASTVisitor_ptr visitor) ;

    // @Override
    SQLDDLStatement::DDLObjectType getDDLObjectType() ;
};
